### 列表生成式
# 优点：快速生成符合规则的数据
# 缺点：浪费内存空间，产生的数据并不一定全部被用到
l1 = [i for i in range(1, 11)]
print(l1)

# 生成器对象
# 方式一：通过列表生成式[]=>()


g1 = (i for i in range(1, 11))
print(g1)

g2 = (i for i in range(1, 11))
print(g2)


# 方式二：自定义规则
# 只要一个方法中包含yield关键字，那么调用该方法时，返回值就不再是普通的值，而是返回一个生成器对象

def f():
    return 1


def f2():
    return 2


